CIE: Add conversion from "RGBA float" to "CIE Lab float"
authorDebarshi Ray <debarshir@gnome.org>
Sun, 29 Oct 2017 12:52:26 +0000 (13:52 +0100)
committerØyvind Kolås <pippin@gimp.org>
Tue, 31 Oct 2017 12:08:40 +0000 (13:08 +0100)
commitea00661dd8986b9a1380c9c500122dec8ca5a0db
tree6c11c458b2d286e165cc10f8374f09cb01e08692
parent2782d926057c49ac2321d1a34d579da4b3ead6b2
CIE: Add conversion from "RGBA float" to "CIE Lab float"

Conversions from "RaGaBaA float" to "CIE Lab float", as seen when
using gegl:shadows-highlights" go via:
  "RaGaBaA float" to "RGBA float"
  "RGBA float"    to "RGB float"
  "RGB float"     to "CIE Lab float"

A direct conversion from "RaGaBaA float" to "CIE Lab float" in simple
C is hindered by the need to check every pixel's alpha value to avoid
dividing by zero. The pipeline stalls make it lose out to the look-up
table and SIMD based conversions to unassociated alpha.

However, we can trivially cut out the second step and still reduce
some memory traffic.

https://bugzilla.gnome.org/show_bug.cgi?id=789695
extensions/CIE.c